复习基本的数字电路知识。包括基本的编码方式、基本门电路的符号、逻辑代数化简方法、常见的组合逻辑设计方法。
常见编码
我们比较常用的编码有8421码,其他的码感觉用的不多。
这里着重学习以下 格雷码,格雷码又叫循环二进制码或反射二进制码。格雷码相邻的两个码之间仅有一个位不一样,其与8421码可通过以下步骤互转:
8421 转格雷码(编码):从==右往左==的第 N 位和 第 N+1 位进行异或,最后一位两个码相同。
格雷码转 8421(译码): 从==右往左==的第 N 位和 第 N+1 位进行异或,最后一位两个码相同。
两个步骤是一样的。一个数异或同一个数两次得到的结果不变。
基本门电路
这部分比较简单,记住下面这个表就可以了。
- 记住常见的门电路符号
- 可以根据电路图写出逻辑代数表达式
逻辑表达式化简
在使用逻辑代数表达式描述完之后功能之后还需要对表达式进行化简,化简的表达式所转化得到的电路具有更少的元件,使电路图可以更加直观,同时也可以节省成本。化简的方法有下面两种。
公式法化简 (这个得看熟练程度)
卡诺图化简方法 (这个要实用一点,但需要列的表比较多)
将所有的输入变量构成最小项,并将最小项根据格雷码的顺序写成表格,保证相邻的两项只有一个输入变量变化,如由 A, B 构成的最小项包括 AB, A'B, AB', A'B',就可以构成下图这种两变量 卡诺图
A/B | 0 | 1 |
---|---|---|
0 | m0 | m1 |
1 | m2 | m3 |
卡诺图利用
卡诺图的化简步骤需要遵循:
- 所有的标1方格都需要被圈覆盖
- 每个圈中包含的相邻小方格数必须为2的整数次幂
- 圈需要尽可能大,圈和圈之间可以重叠
- 每个圈中至少有一个标1的方格未被其他圈所覆盖
组合逻辑电路设计过程
- 根据需求确定功能
- 根据功能列出真值表
- 根据真值表写出逻辑表达式
- 将逻辑表达式化简
- 逻辑表达式转化为逻辑电路图
编码器实现
译码器的作用就是按照输入的类似并行的数据格式转换为BCD码,常用的集成芯片是74LS148。它的真值表如下图。
因此可以根据它的真值表写出输出的表达式为(这里写的是最基本的编码器的逻辑代数表达式,跟上图对比需要再取反)
译码器实现
译码器的作用与编码器相反,作用是将BCD码转换为对应序号的端口输出,这里是常用译码器74138的真值表。七段式数码管显示电路也可以借用这个思想进行设计。
同样是需要写出它的逻辑表达式。
加法器实现
加法器是现代计算机中最基础的一个运算单元。加法器分为半加器和全加器, 半加器不考虑进位,结构比较简单,只能计算一位二进制加法。因为半加器比较简单,所以这里直接给出它的逻辑表达式。 半加器逻辑表达式为
全加器因为需要考虑到进位信息,所以稍微复杂一些,下面的就是全加器的真值表
通过化简可以得出全加器的逻辑表达式为,这里只涉及一个全加器。
行波进位加法器(Ripple-Carry Adder,RCA),如果要实现多位二进制数进行相加,可以通过将多个全加器进行级联,
全加器的位数等于相加数的个数,最低位的
电路的门延迟为,其中T是每个门电路的输出延迟。
RLA的改进版称为超前进位加法器(Carry-lookhead Adder CLA),具体原理如下。
先对C的表达式进行化简, 其中
按照形式,各级门电路的进位表达式可以写为:
规律也挺明显的,
CLA相较与RCA的计算延迟时间固定为三级门延迟,且延迟和加法器的位数无关,但是如果进一步扩宽加法器的位宽,则电路会变得非常复杂。